Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modernizes python-datemath to a current 2026 Python project layout and removes the remaining legacy install paths.
This MR replaces setup.py/setup.cfg/requirements.txt with a single pyproject.toml, adopts uv for local development and builds, migrates the old unittest file into a pytest test suite, and adds centralized ruff and mypy configuration. CI and release workflows were updated to use current GitHub Actions plus uv, and the Docker image now builds from a current Python base image instead of the old Python 3.9 + setup.py flow.
It also includes a small cleanup pass in the library itself: the unit alias handling is simpler, timezone parsing is a bit more robust with current Arrow/Python behavior, and the tests now use stdlib zoneinfo rather than pytz.
Validation performed:
uv run pytest
uv run ruff check .
uv run mypy
uv build
uv run twine check dist/*
uv run --with pip-audit pip-audit
Main changes:
add pyproject.toml and uv.lock
remove legacy packaging files: setup.py, setup.cfg, requirements.txt
migrate tests from tests.py to tests/test_datemath.py
modernize CI/release workflows in .github/workflows
update Dockerfile and add .dockerignore
Notes:
minimum supported Python version is now 3.11
test coverage was migrated and hardened, not replaced wholesale
pip-audit reported no known Python package vulnerabilities after the migration
Add releaserc
Add pre-commit